JSP (Java Server Pages) তে HttpSession অবজেক্ট ব্যবহার করে ব্যবহারকারীর সেশন পরিচালনা করা হয়। সেশন হল একটি সময়সীমার মধ্যে ব্যবহারকারীর তথ্য সংরক্ষণ করার প্রক্রিয়া। এটি সাধারণত ব্যবহারকারী একটি ওয়েব অ্যাপ্লিকেশন ব্যবহার করতে থাকা অবস্থায় তার তথ্য (যেমন লগইন ডিটেইলস, শপিং কার্টের আইটেম ইত্যাদি) সংরক্ষণ করতে ব্যবহৃত হয়।
HttpSession Object এর ভূমিকা:
- State Management: HTTP প্রোটোকল হল স্টেটলেস, অর্থাৎ প্রতিটি রিকোয়েস্টের পর সেশন তথ্য হারিয়ে যায়। তবে HttpSession এর মাধ্যমে ওয়েব অ্যাপ্লিকেশন সার্ভার সাইডে ব্যবহারকারীর তথ্য সংরক্ষণ করতে পারে।
- ডাটা সংরক্ষণ: HttpSession ব্যবহার করে সার্ভার ব্যবহারকারীর সাথে সম্পর্কিত ডাটা সংরক্ষণ করতে পারে, যাতে ব্যবহারকারী এক পেজ থেকে অন্য পেজে যাতায়াত করতে থাকলেও তথ্যের ধারাবাহিকতা বজায় থাকে।
HttpSession এর ব্যবহার:
1. সেশন তৈরি এবং তথ্য সংরক্ষণ
সেশন শুরু করার জন্য এবং তথ্য সংরক্ষণ করার জন্য প্রথমে HttpSession অবজেক্ট তৈরি করতে হয়।
<%@ page import="javax.servlet.http.HttpSession" %>
<html>
<head>
<title>HttpSession Example</title>
</head>
<body>
<%
// HttpSession অবজেক্ট তৈরি
HttpSession session = request.getSession();
// সেশনে তথ্য সংরক্ষণ
session.setAttribute("username", "john_doe");
session.setAttribute("userRole", "admin");
out.println("Session data has been set.");
%>
</body>
</html>
ব্যাখ্যা:
request.getSession()ব্যবহার করে একটি নতুন সেশন তৈরি করা হয় বা বর্তমান সেশন পাওয়া যায় (যদি সেটি না থাকে)।session.setAttribute("key", "value")ব্যবহার করে সেশনে ডাটা সংরক্ষণ করা হয়। এখানেkeyহল ডাটা চিহ্নিত করার জন্য একটি স্ট্রিং এবংvalueহল সেই ডাটার মান।
2. সেশন থেকে তথ্য রিট্রিভ করা
আগে সংরক্ষিত সেশন তথ্য পুনরুদ্ধার করতে getAttribute মেথড ব্যবহার করা হয়।
<%@ page import="javax.servlet.http.HttpSession" %>
<html>
<head>
<title>HttpSession Example</title>
</head>
<body>
<%
HttpSession session = request.getSession(false); // false মানে নতুন সেশন তৈরি না করা
if (session != null) {
String username = (String) session.getAttribute("username");
String userRole = (String) session.getAttribute("userRole");
out.println("Username: " + username);
out.println("<br>Role: " + userRole);
} else {
out.println("No session found.");
}
%>
</body>
</html>
ব্যাখ্যা:
session.getAttribute("key")ব্যবহার করে সেশনে সংরক্ষিত তথ্য পুনরুদ্ধার করা হয়।request.getSession(false)ব্যবহার করে শুধুমাত্র বিদ্যমান সেশন পুনরুদ্ধার করা হয়, যদি সেশন না থাকে তবেnullফেরত পাওয়া যাবে।
3. সেশন নিষ্ক্রিয় করা
একটি সেশন শেষ করতে এবং তার সকল তথ্য মুছে ফেলতে invalidate() মেথড ব্যবহার করা হয়।
<%@ page import="javax.servlet.http.HttpSession" %>
<html>
<head>
<title>HttpSession Example</title>
</head>
<body>
<%
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate(); // সেশন শেষ করা
out.println("Session has been invalidated.");
} else {
out.println("No session to invalidate.");
}
%>
</body>
</html>
ব্যাখ্যা:
session.invalidate()ব্যবহার করে সেশনটি শেষ করা হয় এবং সেশনে সংরক্ষিত সমস্ত তথ্য মুছে ফেলা হয়।
সারাংশ
HttpSession অবজেক্টের মাধ্যমে JSP এ ব্যবহারকারী সেশন পরিচালনা করা যায়। এটি ব্যবহারকারীর তথ্য সংরক্ষণ, রিট্রিভ এবং সেশন শেষ করার প্রক্রিয়াকে সহজ করে। setAttribute, getAttribute এবং invalidate মেথডের মাধ্যমে সেশন পরিচালনা করা হয়, যা ওয়েব অ্যাপ্লিকেশনে স্টেটফুল আচরণ নিশ্চিত করে।
Read more